#!/bin/bash
source "sXterm.sh"
# это цвет текста списка перед курсором при значении 0 в переменной  UNMARK(){ $e "\e[0m";}
 MARK(){ $e "\e[1;30m";}
#
 HEAD()
{
 for (( a=2; a<=38; a++ ))
  do
   TPUT $a 1
        $E "\e[90m\xE2\x94\x82                                                                                \xE2\x94\x82\e[0m";
  done
}
 FOOT()
{
 MARK;
      TPUT  1 1;$E "\e[90m┌────────────────────────────────────────────────────────────────────────────────┐\033[0m";
      TPUT  2 3;$E "\e[1;36mKey Bindings \e[0m\e[36m Привязки клавиш\e[0m";
      TPUT  3 3;$E "\e[90mМожно перепривязать ключи (или последовательности клавиш) к произвольным\033[0m";
      TPUT  4 3;$E "\e[90mстрокам для ввода, изменив ресурсы переводов для виджетов vt100 или tek4014.\033[0m";
      TPUT  5 3;$E "\e[90mИзменение ресурса перевода для событий, отличных от событий клавиш и кнопок,\033[0m";
      TPUT  6 3;$E "\e[90mне ожидается и приведет к непредсказуемому поведению.\e[0m";
      TPUT  7 1;$E "\e[90m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
      TPUT  8 3;$E "\e[36mActions Действия\e[0m";
      TPUT  9 3;$E "\e[90mСледующие действия предусмотрены для использования в ресурсах перевода\e[0m";
      TPUT 10 3;$E "\e[90mvt100 или tek4014:\e[0m";
      TPUT 36 1;$E "\e[90m├─ Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter ─────────────────────────────────────────────────────┤\e[0m";
      TPUT 39 1;$E "\e[90m└────────────────────────────────────────────────────────────────────────────────┘\033[0m";
 UNMARK;
}
#
  M0(){ TPUT 11 3; $e "Устанавливает/сбрасывает/переключает ресурс allowBoldFonts \e[32m allow-bold-fonts \e[0m";}
  M1(){ TPUT 12 3; $e "Устанавливает/сбрасывает/переключает ресурс allowColorOps   \e[32m allow-color-ops \e[0m";}
  M2(){ TPUT 13 3; $e "Устанавливает, отключает или переключает ресурс allowFontOps \e[32m allow-font-ops \e[0m";}
  M3(){ TPUT 14 3; $e "Устанавливает/сбрасывает/переключает ресурс  allowMousepOps \e[32m allow-mouse-ops \e[0m";}
  M4(){ TPUT 15 3; $e "Устанавливает/сбрасывает/переключает allowSendEvents      \e[32m allow-send-events \e[0m";}
  M5(){ TPUT 16 3; $e "Устанавливает/отключает/переключает ресурс allowTcapOps      \e[32m allow-tcap-ops \e[0m";}
  M6(){ TPUT 17 3; $e "Устанавливает/сбрасывает/переключает ресурс allowTitleOps   \e[32m allow-title-ops \e[0m";}
  M7(){ TPUT 18 3; $e "Устанавливает/сбрасывает/переключает ресурс allowWindowOps \e[32m allow-window-ops \e[0m";}
  M8(){ TPUT 19 3; $e "Действие переключает состояние ресурса altSendsEscape    \e[32m alt-sends-escape() \e[0m";}
  M9(){ TPUT 20 3; $e "Это действие звонит в колокольчик клавиатуры                \e[32m bell([percent]) \e[0m";}
 M10(){ TPUT 21 3; $e "Очищает историю, сохраненных в верхней части экрана     \e[32m clear-saved-lines() \e[0m";}
 M11(){ TPUT 22 3; $e "Помещает выделенный текст во все выделения \e[32m copy-selection(destname [, ...]) \e[0m";}
 M12(){ TPUT 23 3; $e "Это действие создает одно из меню, используемых xterm  \e[32m create-menu(m/v/f/t) \e[0m";}
 M13(){ TPUT 24 3; $e "Расширяет слово перед курсором                             \e[32m dabbrev-expand() \e[0m";}
 M14(){ TPUT 25 3; $e "Изменяет состояние окна на нормальное                           \e[32m deiconify() \e[0m";}
 M15(){ TPUT 26 3; $e "Это действие переключает состояние ресурса deleteIsDEL      \e[32m delete-is-del() \e[0m";}
 M16(){ TPUT 27 3; $e "Обрабатывает событие кнопки (кроме нажатия и отпускания)     \e[32m dired-button() \e[0m";}
 M17(){ TPUT 28 3; $e "Вызывает функцию дампа экрана XHTML                             \e[32m dump-html() \e[0m";}
 M18(){ TPUT 29 3; $e "Вызывает функцию дампа экрана SVG                                \e[32m dump-svg() \e[0m";}
 M19(){ TPUT 30 3; $e "Выполнить внешнюю команду, используя текущий выбор         \e[32m exec-formatted() \e[0m";}
 M20(){ TPUT 31 3; $e "Выполнить внешнюю команду, используя данные, с экрана     \e[32m exec-selectable() \e[0m";}
 M21(){ TPUT 32 3; $e "Устанавливает/отключает/переключает полноэкранный ресурс       \e[32m fullscreen() \e[0m";}
 M22(){ TPUT 33 3; $e "Сбрасывает область прокрутки/вкладки/размер окна/курсором      \e[32m hard-reset() \e[0m";}
 M23(){ TPUT 34 3; $e "Обозначает окно                                                   \e[32m iconify() \e[0m";}
 M24(){ TPUT 35 3; $e "Это действие игнорирует событие                                    \e[32m ignore() \e[0m";}
#
 M25(){ TPUT 37 3; $e "Далее                                                                  \e[32m Next \e[0m";}
 M26(){ TPUT 38 3; $e "Выход                                                                  \e[32m Exit \e[0m";}
LM=26
   MENU(){ for each in $(seq 0 $LM);do M${each};done;}
    POS(){ if [[ $cur == up ]];then ((i--));fi
           if [[ $cur == dn ]];then ((i++));fi
           if [[ $i -lt 0   ]];then i=$LM;fi
           if [[ $i -gt $LM ]];then i=0;fi;}
REFRESH(){ after=$((i+1)); before=$((i-1))
           if [[ $before -lt 0  ]];then before=$LM;fi
           if [[ $after -gt $LM ]];then after=0;fi
           if [[ $j -lt $i      ]];then UNMARK;M$before;else UNMARK;M$after;fi
           if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
           UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
   INIT(){ R;HEAD;FOOT;MENU;}
     SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
# Функция возвращения в меню
     ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  while [[ "$O" != " " ]]; do case $i in
  0) S=M0;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, сбрасывает или переключает ресурс allowBoldFonts,
 а также вызывается записью allow-bold-fonts в fontMenu.
\e[32m allow-bold-fonts(on/off/toggle)\e[0m
";ES;fi;;
  1) S=M1;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, сбрасывает или переключает ресурс allowColorOps,
 а также вызывается записью allow-color-ops в fontMenu.
\e[32m allow-color-ops(on/off/toggle)\e[0m
";ES;fi;;
  2) S=M2;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, отключает или переключает ресурс allowFontOps,
 а также вызывается записью allow-font-ops в fontMenu.
\e[32m allow-font-ops(on/off/toggle)\e[0m
";ES;fi;;
  3) S=M3;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, сбрасывает или переключает ресурс allowMousepOps,
 а также вызывается записью allow-mouse-ops в fontMenu.
\e[32m allow-mouse-ops(on/off/toggle)\e[0m
";ES;fi;;
  4) S=M4;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, сбрасывает или переключает ресурс allowSendEvents,
 а также вызывается записью allowSends в mainMenu.
\e[32m allow-send-events(on/off/toggle)\e[0m
";ES;fi;;
  5) S=M5;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, отключает или переключает ресурс allowTcapOps,
 а также вызывается записью allow-tcap-ops в fontMenu.
\e[32m  allow-tcap-ops(on/off/toggle)\e[0m
";ES;fi;;
  6) S=M6;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, сбрасывает или переключает ресурс allowTitleOps,
 а также вызывается записью allow-title-ops в fontMenu.
\e[32m allow-title-ops(on/off/toggle)\e[0m
";ES;fi;;
  7) S=M7;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие устанавливает, сбрасывает или переключает ресурс allowWindowOps,
 а также вызывается записью allow-window-ops в fontMenu.
\e[32m allow-window-ops(on/off/toggle)\e[0m
";ES;fi;;
  8) S=M8;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие переключает состояние ресурса altSendsEscape.
\e[32m alt-sends-escape()\e[0m";ES;fi;;
  9) S=M9;SC; if [[ $cur == enter ]];then R;echo -e "
 Это действие звонит в колокольчик клавиатуры на указанный процент выше
 или ниже базовой громкости.
\e[32m bell([percent])\e[0m
";ES;fi;;
 10) S=M10;SC;if [[ $cur == enter ]];then R;echo -e "
 Это действие выполняет hard-reset(), а также очищает историю строк, сохраненных
 в верхней части экрана. Он также вызывается из записи clearsavedlines в vtMenu.
 Эффект идентичен управляющей последовательности аппаратного сброса (RIS).
\e[32m clear-saved-lines()\e[0m
";ES;fi;;
 11) S=M11;SC;if [[ $cur == enter ]];then R;echo -e "
 Это действие помещает выделенный в данный момент текст во все выделения или
 вырезаемые буферы, указанные в параметре destname.
 В отличие от select-end, он не отправляет положение мыши
 или иным образом не изменяет внутреннее состояние выбора.
\e[32m copy-selection(destname [, ...])\e[0m
";ES;fi;;
 12) S=M12;SC;if [[ $cur == enter ]];then R;echo -e "
 Это действие создает одно из меню, используемых xterm, если оно не было создано
 ранее. Значения параметров — названия меню:
 mainMenu, vtMenu, fontMenu, tekMenu соответственно.
\e[32m create-menu(m/v/f/t)\e[0m
";ES;fi;;
 13) S=M13;SC;if [[ $cur == enter ]];then R;echo -e "
 Расширяет слово перед курсором, выполняя поиск в предшествующем тексте на экране
 и в буфере обратной прокрутки слов, начинающихся с этой аббревиатуры.
 Повторение dabbrev-expand() несколько раз подряд приводит к поиску
 альтернативного расширения, оглядываясь назад.
 Отсутствие большего количества спичек сигнализируется звонком.
 Попытки расширить пустое слово (т. е. когда перед курсором стоит пробел)
 последовательно приводят ко всем предыдущим словам.
 Последовательные идентичные расширения игнорируются.
 Слово здесь определяется как последовательность непробельных символов.
 Эта функция частично эмулирует поведение раскрытия «динамических аббревиатур»
 в Emacs (с привязкой к M-/).
 Вот настройка ресурса для xterm, которая будет делать то же самое:
 *VT100*translations: #override \\ n\\
 Meta <KeyPress> /:dabbrev-expand()
\e[32m dabbrev-expand()\e[0m
";ES;fi;;
 14) S=M14;SC;if [[ $cur == enter ]];then R;echo -e "
 Изменяет состояние окна на нормальное, если оно было иконизировано.
\e[32m deiconify()\e[0m
";ES;fi;;
 15) S=M15;SC;if [[ $cur == enter ]];then R;echo -e "
 Это действие переключает состояние ресурса deleteIsDEL.
\e[32m delete-is-del()\e[0m
";ES;fi;;
 16) S=M16;SC;if [[ $cur == enter ]];then R;echo -e "
 Обрабатывает событие кнопки (кроме нажатия и отпускания),
 отображая позицию события (т. е. строку и столбец символов) в следующем формате:
 ^X ESC G <line+“ ”> <col+“ ”>
\e[32m dired-button()\e[0m
";ES;fi;;
 17) S=M17;SC;if [[ $cur == enter ]];then R;echo -e "
 Вызывает функцию дампа экрана XHTML
\e[32m dump-html()\e[0m
";ES;fi;;
 18) S=M18;SC;if [[ $cur == enter ]];then R;echo -e "
 Вызывает функцию дампа экрана SVG
\e[32m dump-svg()\e[0m
";ES;fi;;
 19) S=M19;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m exec-formatted(format, sourcename [, ...])\e[0m
 Выполнить внешнюю команду, используя текущий выбор для части параметров команды.
 Первый параметр, формат, дает базовую команду. Последующие параметры указывают
 источник выбора, как при выборе вставки.
 Параметр формата допускает следующие замены:
 %% вставляет \"%\".
 %P позиция на экране в начале выделенной области в виде пары целых чисел,
    разделенных точкой с запятой, с использованием значений,
    которые использовала бы управляющая последовательность CUP.
 %p — позиция на экране после начала выделенной области,
      используя то же соглашение, что и «%P».
 %S длина строки, которую будет вставлять «%s».
 %s содержимое выделения, без изменений.
 %T длина строки, которую будет вставлять «%t».
 %t выделение, обрезанное пробелами в начале/конце.
    Встроенные пробелы (и новые строки) копируются как есть.
 %R длина строки, которую будет вставлять «%r».
 %r выделение, обрезанное пробелами в конце.
 %V атрибуты видео в начале выделенной области в виде списка целых чисел,
    разделенных точкой с запятой, использующих значения,
    которые использовала бы управляющая последовательность SGR.
 %v атрибуты видео после конца выделенной области,
    используя то же соглашение, что и «%V».

 После построения командной строки xterm разветвляет подпроцесс и выполняет команду,
 которая завершается независимо от xterm.
 Например, этот перевод вызовет новый процесс xterm для просмотра файла,
 имя которого выбрано при нажатой клавише Shift.
 Новый процесс запускается при отпускании кнопки мыши:
 *VT100*translations: #override Shift \\
 <Btn1Up>:exec-formatted(\"xterm -e view '%t'\", SELECT)
";ES;fi;;
 20) S=M20;SC;if [[ $cur == enter ]];then R;echo -e "
 Выполнить внешнюю команду, используя данные, скопированные с экрана, для части
 параметров команды. Первый параметр, формат дает базовую команду, как в формате
 exec. Второй параметр указывает метод копирования данных, как в ресурсе on2Clicks
\e[32m exec-selectable(format, onClicks)\e[0m
";ES;fi;;
 21) S=M21;SC;if [[ $cur == enter ]];then R;echo -e "
  Это действие устанавливает, отключает или переключает полноэкранный ресурс
\e[32m fullscreen(on/off/toggle)\e[0m
";ES;fi;;
 22) S=M22;SC;if [[ $cur == enter ]];then R;echo -e "
 Это действие сбрасывает область прокрутки, вкладки, размер окна и клавиши
 управления курсором, а также очищает экран.
 Он также вызывается из записи жесткого сброса в vtMenu.
\e[32m hard-reset()\e[0m
";ES;fi;;
 23) S=M23;SC;if [[ $cur == enter ]];then R;echo -e "
 Обозначает окно.
\e[32m iconify()\e[0m
";ES;fi;;
 24) S=M24;SC;if [[ $cur == enter ]];then R;echo -e "
 Это действие игнорирует событие,
 но проверяет специальные управляющие последовательности положения указателя.
\e[32m ignore()\e[0m
";ES;fi;;
#
 25) S=M25;SC;if [[ $cur == enter ]];then R;./kXtermKeyBindingsB.sh;ES;fi;;
 26) S=M26;SC;if [[ $cur == enter ]];then R;clear;exit 0;fi;;
 esac;POS;done
